program hello
  const c1 = 10
  const c2 = 1.0

type uint = int

type Node = ->NodeStruct
     NodeStruct= compound
       next: Node
       data: int
     end
     
var
    a,b,c, i:int
    ch:char
    str:->char
    s:string
    b1:bool
    arr2: array[1:2,1:2] of int
    test: compound 
      i: array[1:2,1:2] of int
    end

  Test(in a:int in b:int):int
    var v1, v2: int
        n, temp : Node
  begin
    n := New(in NodeStruct)
    temp := New(in NodeStruct)
    n->data := 5
    n->next := temp
    n->next->next := null
    Dispose(in n);
    return 3
  end Test

  Test2()
  begin
    return
  end Test


begin
  b := (5 + 5 + 5 + 3) / 2 
  c := (5 + 5 + 5 + 3) % 2 

  a := a and b or c

  arr2[2,2] := 1

  str := "abc"
  s := str

  if true then 
    i:=1 
  else
    i:=-1
  end

  if a<b then
    i:=12
  end

  if a=b then
    i:=13
  end

  i := 0
  while i>0 do
    i := i-1
  end

  i := 1
  repeat 
    i := i + 1
  until i <= 10
  
  c := 0
  for i:= 1 to 10 do
    c := c + i
  end

  Test(in 1 in 10)
  
  Read()
end